草庐IT

ionic 模态窗口

全部标签

windows - 获取当前事件窗口的线程 ID

我需要获取事件窗口的线程ID。是否有WindowsAPI函数可以让我获取此信息?有GetCurrentThreadId函数,但它会返回调用线程的ID,而不是事件窗口线程,因此它对这个目的没有用。编辑:按照建议编辑我的问题以提供有关我为什么需要这个的额外信息,这里是:我正在实现LowLevelKeyboardProc捕获键盘输入,并且由于键盘布局因程序而异,我想确保为处理键盘的事件窗口获取布局:代码片段:HWNDactive_window=GetForegroundWindow();DWORDthread_id=GetWindowThreadProcessId(active_window

c++ - 为什么子窗口可能收不到鼠标事件?

我有一个自定义的WTL控件,它是一个带有列表和自定义滚动条的面板。classPanel:publicATL::CWindowImpl,publicWTL::CDoubleBufferImpl{public:DECLARE_WND_CLASS("Panel")BEGIN_MSG_MAP_EX(Panel)MSG_WM_CREATE(OnCreate)MSG_WM_DESTROY(OnDestroy)MSG_WM_SIZE(OnSize)CHAIN_MSG_MAP(CDoubleBufferImpl)REFLECT_NOTIFICATIONS()END_MSG_MAP()滚动条由面板在On

windows - 确定给定窗口当前是否正在移动

基本上,我正在寻找IsWindowMoving(HWND)Win32API调用。我需要知道用户当前是否正在移动窗口。该窗口不属于我,因此无法监听WM_SYSCOMMAND/SC_MOVE或WM_MOVING(由于32/64互操作,我不想子类化或Hook)。 最佳答案 您可以使用GetGUIThreadInfo执行此操作-无需Hook。使用GetWindowThreadProcessId获取hwnd的TID,然后检查GUITHREADINFO.flags和GUITHREADINFO.hwndMoveSize以查看您的窗口是否处于移动/

c++ - 如何在不将 wm_paint 发送到子窗口的情况下使父窗口无效?

父子窗口大小相同。家长听着child的重绘当子重绘时,父重绘。所以我不能使用invalidate来清理父窗口,因为这会将wm_paint发送到子窗口,然后无限循环。如何在不使用invalidateRect、invalidateRgn等的情况下清理父窗口。或者,如何在不将wm_paint发送到子窗口的情况下使父窗口无效?谢谢! 最佳答案 您可以在您的窗口上设置WS_CLIPCHILDREN样式,或者尝试调用RedrawWindow将RDW_NOCHILDREN指定为最终参数的函数。这可能会做你想做的事,虽然这有点难说。

windows - 检测窗口在 wndproc 之外关闭?

我目前正在开发一个win32GUI应用程序,它在窗口线程中完成大部分工作。这个线程有时会被阻塞,因为它运行的脚本引擎可以被外部脚本调试器(另一个进程)挂起。大多数时候这不是问题,因为这是预期的行为。但是,如果用户试图关闭窗口,应用程序显然会变得无响应,您会看到“此应用程序没有响应...”对话框。我的计划是定期从“暂停代码”回调到应用程序并让它为WM_CLOSE执行PeekMessage,如果是这样,则终止调试器。不幸的是,据我所知,WM_CLOSE直接发送到wndproc。除了重新设计应用程序之外,还有其他方法可以检测到用户想要关闭窗口吗?例如,是否有一些其他消息可以使用PeekMes

c# - 如何通过部分标题名称设置前景窗口>

我想将另一个应用程序调到前台,但是,我只有窗口的部分名称。过去,我会连接到EnumWindowsAPI并寻找我需要的东西。有没有办法在C#中做得更好?一个例子会很棒。 最佳答案 这应该可以完成工作:[DllImport("user32.dll",EntryPoint="SystemParametersInfo")]publicstaticexternboolSystemParametersInfo(uintuiAction,uintuiParam,uintpvParam,uintfWinIni);[DllImport("user32

windows - wxPython - 在没有窗口焦点的情况下捕获鼠标和键盘事件

我正在尝试使用wxPython编写一个时间管理工具,它在理想情况下是非侵入性的并且非常不碍事。到目前为止,该应用程序可以正常使用,并在使用期间最小化到系统托盘。但是,我注意到一旦框架不在焦点上,就像它的“图标化”时一样,当框架/应用程序在焦点上时正常工作的鼠标和键盘陷印将不再起作用。我知道我可以编写C++程序来创建MessageQueueHook并在操作系统级别捕获所有鼠标和键盘事件,但我不想卷起袖子那么。毕竟试图避免弄脏我的手是我首先在wxPython中编写UI的原因:) 最佳答案 您真的需要鼠标和键盘事件,还是只知道用户是否空闲

windows - 从代码创建另一个窗口?

我目前正在开发一款游戏,并且很想为其添加一个外部控制台(现在它内置于主游戏窗口中)。我真正想要的是创建一个新窗口,它充当控制台,底部可能有一个文本框,用于向其中添加新命令,顶部有一个更大的文本框,用于输出信息。我正在使用DirectX,但不确定我将如何去做。我是否从C++创建一个新窗口?如果是这样,我将如何处理给定的要求(我真的更喜欢我创建的窗口不是iNCLR)。主应用程序窗口和控制台窗口之间的通信会不会有问题?我不介意使用实际的Windows窗体对象来实现这一点(事实上我更喜欢这种方式,因为它会提供复制+粘贴等优势)。我想要最灵活的选项,也许这样我就可以在控制台窗口中添加彩色文本等。

c# - 我怎么知道我的应用程序窗口是前景窗口

我有以下问题:我想知道我的应用程序窗口是否是Windows中的前景窗口。我在WindowsXP上使用C#、.NetFramework3.5。我其实可以想到两种方法来做我想做的事使用pinvoke,GetForeGroundWindow并将返回的hWnd与我的表单的hWnd进行比较检查Form.ActiveForm是否为null或对象引用方法1似乎没问题,但除非万不得已,否则我宁愿不使用pinvoke。我不太确定方法2,尽管它似乎工作正常。应该用什么方法,还有其他方法吗? 最佳答案 看来ActiveForm是特定于应用程序的。如果您想

c++ - 是什么在窗口的上角创建了三个关闭/最小化/最大化图标? (C++)

我正在制作一个C++/Windows/DirectX程序,当它以窗口模式运行时(使用d3dpp.Windowed=(!FULLSCREEN);其中FULLSCREEN定义为0),通常位于任何窗口顶部的三个图标(最小化、最大化/恢复和关闭)不存在。此外,它不仅仅是一张没有边框或其他任何东西的图像,它看起来与普通窗口相同,只是减去了前面提到的三个图标。那么,什么会导致窗口在不改变它的任何其他方面的情况下丢失顶角的三个图标? 最佳答案 您不会告诉您窗口是如何创建的。当对普通Win32进行编程时,您使用CreateWindow()或Crea